
package std.runtime

import std.fs.*
import {std.io.*, std.process.*, std.fs.*, std.env.*, std.sync.Mutex}

@Deprecated[message: "Use 'public func gc(heavy!: Bool = false): Unit' instead."]
@!APILevel[
    since: "22"
]
public func GC(heavy!: Bool = false): Unit

@Deprecated[message: "Use 'public func setGCThreshold(value: UInt64): Unit' instead."]
@!APILevel[
    since: "22"
]
public func SetGCThreshold(value: UInt64): Unit

@!APILevel[
    since: "22"
]
public func gc(heavy!: Bool = false): Unit

@!APILevel[
    since: "22"
]
public func setGCThreshold(value: UInt64): Unit

@!APILevel[
    since: "22"
]
public func getGCCount(): Int64

@!APILevel[
    since: "22"
]
public func getGCTime(): Int64

@!APILevel[
    since: "22"
]
public func getGCFreedSize(): Int64

@Deprecated[message: "All static Properties are converted to public functions."]
@!APILevel[
    since: "22"
]
public struct MemoryInfo {
    @!APILevel[
        since: "22"
    ]
    public static prop maxHeapSize: Int64
    
    @!APILevel[
        since: "22"
    ]
    public static prop allocatedHeapSize: Int64
    
    /**
    * @throws MemoryInfoException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public static prop heapPhysicalMemory: Int64
}

@!APILevel[
    since: "22"
]
public func getMaxHeapSize(): Int64

@!APILevel[
    since: "22"
]
public func getAllocatedHeapSize(): Int64

/**
* @throws MemoryInfoException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func getUsedHeapSize(): Int64

/**
* @throws IllegalMemoryException
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws FSException
* @throws MemoryInfoException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func dumpHeapData(path: Path): Unit

@Deprecated[message: "All static Properties are converted to public functions."]
@!APILevel[
    since: "22"
]
public struct ProcessorInfo {
    @!APILevel[
        since: "22"
    ]
    public static prop processorCount: Int64
}

@!APILevel[
    since: "22"
]
public func getProcessorCount(): Int64

/**
* @throws ProfilingInfoException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func startCPUProfiling(): Unit

/**
* @throws IllegalMemoryException
* @throws IndexOutOfBoundsException
* @throws FSException
* @throws IllegalArgumentException
* @throws ProfilingInfoException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func stopCPUProfiling(path: Path): Unit

@Deprecated[message: "All static Properties are converted to public functions."]
@!APILevel[
    since: "22"
]
public struct ThreadInfo {
    @!APILevel[
        since: "22"
    ]
    public static prop threadCount: Int64
    
    @!APILevel[
        since: "22"
    ]
    public static prop blockingThreadCount: Int64
    
    @!APILevel[
        since: "22"
    ]
    public static prop nativeThreadCount: Int64
}

@!APILevel[
    since: "22"
]
public func getThreadCount(): Int64

@!APILevel[
    since: "22"
]
public func getBlockingThreadCount(): Int64

@!APILevel[
    since: "22"
]
public func getNativeThreadCount(): Int64

